using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ReplaceMaterials")]
	public class ReplaceMaterials : MonoBehaviour
	{
		[Attribute38("ReplaceMaterials.MaterialData")]
		public class MaterialData : MonoClass
		{
			public string GameObjectName => method_4("GameObjectName");

			public int MaterialIndex => method_2<int>("MaterialIndex");

			public Material NewMaterial => method_3<Material>("NewMaterial");

			public bool ReplaceChildMaterials => method_2<bool>("ReplaceChildMaterials");

			public GameObject DisplayGameObject => method_3<GameObject>("DisplayGameObject");

			public MaterialData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public MaterialData(IntPtr address)
				: this(address, "MaterialData")
			{
			}
		}

		public List<MaterialData> m_Materials => method_3<Class271<MaterialData>>("m_Materials")?.method_25();

		public ReplaceMaterials(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ReplaceMaterials(IntPtr address)
			: this(address, "ReplaceMaterials")
		{
		}

		public void Start()
		{
			method_8("Start");
		}

		public GameObject FindGameObject(string gameObjName)
		{
			return method_14<GameObject>("FindGameObject", new object[1] { gameObjName });
		}
	}
}
